package ar.edu.utn.frgp.labtec.actions.ordentrabajo;

import java.util.ArrayList;

import ar.edu.utn.frgp.labtec.constants.ServiceNameConstants;
import ar.edu.utn.frgp.labtec.entities.OrdenDeTrabajo;
import ar.edu.utn.frgp.labtec.entities.RevisionContrato;
import ar.edu.utn.frgp.labtec.service.GestionContratoService;
import ar.edu.utn.frgp.labtec.service.GestionOrdenTrabajoService;



@SuppressWarnings("serial")
public class InitOrdenTrabajoAction extends OrdenTrabajoAction  {
	
	public String execute(){
		
		GestionOrdenTrabajoService gestionOrden = (GestionOrdenTrabajoService) getContext().getBean(ServiceNameConstants.GESTION_ORDEN_TRABAJO_SERVICE);
		OrdenDeTrabajo ordenDeTrabajo =	gestionOrden.getOrdenDeTrabajo(idOrden);
		setDatosOrden(ordenDeTrabajo);
		
		crearListaFormaPago();
		return SUCCESS;
	}
	
	private void crearListaFormaPago(){
		listaFormaPago = new ArrayList<String>();
	
		listaFormaPago.add("Efectivo");
		listaFormaPago.add("Otra");
	}
	
	private void setDatosOrden(OrdenDeTrabajo orden){
		
		idOrden = orden.getIdOrden();
		anioOrden = orden.getAnioOrden();
		laboratorio = orden.getCodLab();
		departamento = orden.getCodDepto();
		
		GestionContratoService contratoService = (GestionContratoService) getContext().getBean(ServiceNameConstants.GESTION_CONTRATO_SERVICE);
		RevisionContrato contrato = contratoService.getContrato(idOrden);
		
		idContrato = contrato.getIdContrato();
		anioContrato = contrato.getAnioContrato();
		
		/** Cliente */
		codCliente = orden.getCliente().getCodCliente();
		razonSocial = orden.getCliente().getRazonSocial();
		responsable = orden.getCliente().getResponsable();
		cuit = orden.getCliente().getCuit();
		domicilio = orden.getCliente().getDomicilio();
		localidad = orden.getCliente().getLocalidad();
		codigoPostal = orden.getCliente().getCodigoPostal();
		provincia = orden.getCliente().getProvincia();
		telefono = orden.getCliente().getTelefono();
		fax = orden.getCliente().getFax();
		email = orden.getCliente().getEmail();
		
		/** Detalle del servicio a realizar */
		numeroCuenta = orden.getNumeroCuenta();
		requisitos = contrato.getRequisitos();
		idLabDep = laboratorio.toString() + "-" + departamento;
		inicialesLab = contrato.getLaboratorio().getIniciales();
		if(contrato.getUsuRequisitos() != null)
			usuRequisitos = contrato.getUsuRequisitos().getNombre();
		
		/** Revision y aprobacion del contrato */
		acuerdoTrabajo = contrato.getAcuerdoTrabajo().getCodigo();
		causasRechModif = contrato.getCausasRechModif();
		fechaAcuerdoTrabajo = formatDate(contrato.getFechaAcuerdoTrabajo());
				
		/** Asignacion de producidos */
		montoTotal = orden.getMontoTotal();
		plazoEntrega = orden.getPlazoEntrega();
		distribucionProducidos = orden.getDistribucionProducidos();
		formaPago = orden.getFormaPago();
		observaciones = orden.getObservaciones();
		estado = orden.getEstado().getCodigo();
		
	}

}